package com.edu.whty.domain;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import lombok.Data;

import java.io.Serializable;
import java.util.List;

/**
 * @Description 平台用户
 * @Author hefeng
 * @Date 2023/5/31
 */
@Data
public class UserInfoDto implements Serializable {

    private static final long serialVersionUID = 2161158033866516931L;

    private String usessionId; // 用户sessionID

    private String userId; // 用户编号

    private String unionUserId; // 联合用户编号

    private String platformCode; // 平台编号

    private String vPlatformCode; // 虚拟平台编号（多值用逗号分隔）

    private String account; // 用户帐号

    private String name; // 用户姓名

    private String nickName; // 用户昵称

    private Integer gender; // 性别（0:女，1:男，2:保密）

    private String birthdate; // 出生日期

    private String phone; // 手机

    private String email; // 邮箱

    private Integer cardType; // 证件类型(0:身份证, 1:护照, 2:驾照)

    private String cardCode; // 证件编号

    private Integer createtime; // 创建时间

    private Integer updatetime; // 更新时间

    private Integer status; // 状态(0:未激活, 1:正常, 2:注销, 3:锁定, 4:安管锁定)

    private Integer source; // 来源

    private Integer flag; // 标识(0:正常, 1:演示, 2:测试)

    private String signature; // 签名

    private String address; // 地址

    private String provinceCode; // 所在省

    private String cityCode; // 所在市

    private String areaCode; // 所在区

    private List<UserRole> userRole; // 用户权限(用户岗位)

    private List<UserOrg> userOrg; // 用户所属部门、班级等节点

    private List<UserTopOrg> userTopOrg; // 用户所属机构、学校等组织

    private JSONObject avatar; // 用户头像

    private String lastTopOrgId; // 最后切换的机构、学校等组织编号

    private String lastTopOrgName; // 最后切换的机构、学校等组织名称

    private Integer lastUserType; // 最后所属的用户类型 0:学生，1:老师，2:家长，3:工作人员，4:机构人员，5:企业人员，12:市民

    private Integer initUserType; // 用户初始注册用户类型(0学生，1老师，2家长等等)

    private Integer subjectPeriod; // 主教学段（用户类型为老师返回）

    private String subjectId; // 主教学科id（用户类型为老师返回）

    private String subjectName;  // 主教学科名称（用户类型为老师返回）

    private Integer technicalId; // 职称id（用户类型为老师返回）

    private String technicalTitle; // 职称（用户类型为老师返回）

    private Integer honoraryId; // 荣誉id（用户类型为老师返回）

    private String honoraryTitle; // 荣誉（用户类型为老师返回）

    private String studentId; // 学生学籍id（初始用户类型为学生返回）

    private String teacherId; // 教师证号（初始用户类型为老师返回）

    private Integer statusLevel; // 用户身份等级 ，0散户(默认值)；1普通(只加入组织未绑定手机,证件的)；2认证(已加入组织；学生有学籍号或身份证即可；非学生的有手机号加身份证才可)；3付费(预留)

    private String userType; // 用户类型  get-org-member-list 部门下人员接口会返回这个类型

    private List<String> roleNames;// 部门成员的岗位信息，是部门成员时返回

    private Integer isCreator; // 1:是创建者

    @Override
    public String toString() {
        return JSON.toJSONString(this);
    }
}
